In a process, such as control system software, a series of steps are performed in a defined order or sequence. Verifying whether the steps in the sequence are performed in the defined order is known as sequence checking. Sequence checking is essential to ensure that the process or the control system operates properly. To facilitate sequence checking, a control system is generally divided into subsystems.
In a traditional method of sequence checking, the operation of each step by a subsystem depends on the status of the previous step and the subsystem that executes that step. For example, as shown in FIG. 1, subsystem 2 will not perform a step if subsystem 1 has either not performed or erroneously performed a step. This dependency of performance of one step on the performance of another step complicates modification and expansion of the control system because modifying or adding a step in a sequence requires modification of other steps. Additionally, the traditional method uses resources, such as computer memory and throughput, inefficiently.